package com.asa.group;

import java.util.ArrayList;
import java.util.Iterator;

/**
 * 商群
 * 商集
 * @author asa
 *
 *设 H 是群 G 的子群， G 关于 H 的左商群为 G/H={aH|a⋳G} （即左陪集组成的集合）
 *
 *
 *这个定义让人感觉好奇怪，不是有不对的地方，而是它所构建出来的新集合很特别，它是由元素的集合所构建出的集合
 *维度扩充得有点大，感觉一瞬间得计算，庞大得数据就过来了
 *
 *
 *
 */
public class GroupFactor {

	
	/**
	 * 构建一个商群
	 * 
	 * @param <T>
	 * @param list1 H
	 * @param list2 G
	 * @param asa
	 * @return
	 */
	public static<T> ArrayList<ArrayList<T>> asa(ArrayList<T> list1,ArrayList<T> list2,ObjectFunction<T> asa){
		
		ArrayList<ArrayList<T>> result = new ArrayList<ArrayList<T>>();
		for (int i = 0; i < list2.size(); i++) {
			
			T t = list2.get(i);
			
			ArrayList<T> buffer = new ArrayList<T>();
			for (int j = 0; j < list1.size(); j++) {
				
				T t2 = list1.get(i);
				
				T hanshu = asa.hanshu(t, t2);
				buffer.add(hanshu);
				
			}
			
			result.add(buffer);
			
			
			
		}
		
		
		
		
		
		
		
		return result;
	}
	
	
}
